package com.party.core.service.commune;

import com.party.common.paging.Page;
import com.party.core.model.commune.CRouteInfo;
import com.party.core.service.IBaseService;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 *  会员到路线的起始点距离和时间服务接口
 * @Date: 2019/10/22 15:29
 */
public interface ICRouteInfoService extends IBaseService<CRouteInfo> {

    /***
    * 批量插入数据
    * @Date 9:15 2019/10/25
    * @param cRouteInfoList
    * @return
    **/
    boolean batchInsert(List<CRouteInfo> cRouteInfoList);

    /***
    * 查询路线会员距离和时间
    * @Date 14:34 2019/10/25
    * @param params
    * @param page
    * @return
    **/
    List<CRouteInfo> webListPage(Map<String,Object> params, Page page);

    List<CRouteInfo> getMemberListPage(Map<String,Object> params, Page page);

    /***
     * c端查询路线会员距离和时间
     * @Date 14:34 2019/10/25
     * @param params
     * @param page
     * @return
     **/
    List<CRouteInfo> routeInfoMobileList(Map<String,Object> params, Page page);

    /***
     * 计算平均路程和时间
     * @Date 10:29 2019/10/29
     * @param params
     * @return
     **/
    Map<String,Object> avgDistanceAndTime(Map<String, Object> params);

    /***
    * 通过路线id删除对应生成的数据
    * @Date 11:55 2019/10/30
    * @param cRouteId
    * @return
    **/
    Boolean deleteByRouteId(String cRouteId);

    /***
     * 获取路线下数据条目数
     * @Date 10:29 2019/11/1
     * @param routeId
     * @return
     **/
    Long getDataTotalByRouteId(String routeId);

    List<CRouteInfo> getDetailRouteList(Map<String, Object> params);

    /***
    * 获取某个会员的路线分析
    * @Date 14:48 2019/11/8
    * @param routeId
    * @param memberId
    * @return
    **/
    List<CRouteInfo> getRouteByMemberIdAndRouteId(String routeId, String memberId);

    /***
     * c端路线分析
     * @Date 10:25 2019/10/29
     * @param params
     * @return
     **/
    CRouteInfo getRouteInfoOne(Map<String, Object> params);
}
